﻿using System;
using System.Globalization;
using System.Data.SqlClient;
using System.Data;
using FTools.Persistencia;

namespace FTools.Generico
{
    public static class FuncionesFecha
    {
        //FECHA DE BD FORMATO STRING AAAAMMDD
        public static String fechaSistema()
        {
            String fecha;
            DataTable dataTable = new DataTable();
            Conexion objConexion = new Conexion();
            try
            {
                SqlCommand command = new SqlCommand("select CONVERT(VARCHAR,GETDATE(),112) as FECHA");
                command.Connection = objConexion.abrirConexion();
                SqlDataAdapter dataAdapter = new SqlDataAdapter(command);
                dataAdapter.Fill(dataTable);
                if (dataTable.Rows.Count >= 0)
                {
                    DataRow fila = dataTable.Rows[0];
                    fecha = (String)fila.ItemArray[0];
                    return fecha;
                }
                return "#FECHA_DB#";
            }
            catch (SqlException ex)
            {
                throw new Exception("#Generico# " + ex.Message);
            }
        }

        //FORMATO DE FECHA DD/MM/AAAA
        public static String formatoFechaDDMMAAAA(String xFecha)
        {
            try
            {
                if (xFecha != null && xFecha.Length == 8)
                {
                    return xFecha.Substring(6, 2) + "/" + xFecha.Substring(4, 2) + "/" + xFecha.Substring(0, 4);
                }
                return "#FECHA#";
            }
            catch (SqlException ex)
            {
                throw new Exception("#Generico# " + ex.Message);
            }
        }

        //FORMATO FECHA AAAAMMDD
        public static String formatoFechaAAAAMMDD(String xFecha)
        {
            try
            {
                if (xFecha != null && xFecha.Length == 10)
                {
                    return xFecha.Substring(6, 4) + xFecha.Substring(3, 2) + xFecha.Substring(0, 2);
                }
                return "#FECHA#";
            }
            catch (SqlException ex)
            {
                throw new Exception("#Generico# " + ex.Message);
            }
        }

        //FORMATO HORA con separador
        public static String formatoHoraSinSep(String xHora)
        {
            try
            {
                if(xHora != null && xHora.Length == 5 && xHora.Contains(":"))//Formato HH:MM
                {
                    return xHora.Substring(0, 2) + xHora.Substring(3,2);
                }
                else if (xHora != null && xHora.Length == 8 && xHora.Contains(":"))//Formato HH:MM:SS
                {
                    return xHora.Substring(0, 2) + xHora.Substring(3, 2) + xHora.Substring(6, 2);
                }
                return "#HORA#";
            }
            catch (SqlException ex)
            {
                throw new Exception("#Generico# " + ex.Message);
            }
        }

        //FORMATO HORA sin separador
        public static String formatoHoraConSep(String xHora)
        {
            try
            {
                if (xHora != null && xHora.Length == 4)//Formato HHMM
                {
                    return xHora.Substring(0, 2) + ":" + xHora.Substring(2, 2);
                }
                else if (xHora != null && xHora.Length == 6)//Formato HHMMSS
                {
                    return xHora.Substring(0, 2) + ":" + xHora.Substring(2, 2) + ":" + xHora.Substring(4, 2);
                }
                return "#HORA#";
            }
            catch (SqlException ex)
            {
                throw new Exception("#Generico# " + ex.Message);
            }
        }
    }
}
